package com.example.demo.service;

import com.example.demo.controller.PersonalDashboardVO;
import com.example.demo.controller.CourseProgressVO;

public interface PersonalDashboardService {

    /**
     * 获取个人数据看板
     * @param studentId 学生ID
     * @return 个人看板数据
     */
    PersonalDashboardVO getPersonalDashboard(Long studentId);

    /**
     * 获取个人课程进度
     * @param studentId 学生ID
     * @param courseId 课程ID
     * @return 课程进度数据
     */
    CourseProgressVO getCourseProgress(Long studentId, Long courseId);

    /**
     * 计算学生总得分和排名
     * @param studentId 学生ID
     * @param dashboard 个人看板对象
     */
    void calculateTotalScoreAndRanking(Long studentId, PersonalDashboardVO dashboard);

    /**
     * 计算能力维度数据
     * @param studentId 学生ID
     * @param dashboard 个人看板对象
     */
    void calculateCompetencyDimensions(Long studentId, PersonalDashboardVO dashboard);

    /**
     * 计算总体任务进度
     * @param studentId 学生ID
     * @param dashboard 个人看板对象
     */
    void calculateOverallProgress(Long studentId, PersonalDashboardVO dashboard);

    /**
     * 获取学生课程进度列表
     * @param studentId 学生ID
     * @param dashboard 个人看板对象
     */
    void getStudentCourseProgressList(Long studentId, PersonalDashboardVO dashboard);
}